package demo1;

import java.io.*;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
        String[] values = br.readLine().split(" ");
        int n = Integer.parseInt(values[0]);
        int m = Integer.parseInt(values[1]);
        List<List<Integer>> lists = new ArrayList<>();
        lists.add(new ArrayList<>());
        for (int i = 1; i <= n; i++) {
            lists.add(new ArrayList<>());
            lists.get(i).add(-1);
        }
        int[] cnt = new int[n + 1]; //每个节点的入度
        for (int i = 1; i <= m; i++) {
            values = br.readLine().split(" ");
            int x = Integer.parseInt(values[0]);
            int y = Integer.parseInt(values[1]);
            lists.get(x).add(y);
            cnt[y]++;
        }

        boolean[] st = new boolean[n + 1];
        Queue<Integer> queue = new LinkedList<>();
        for (int i = 1; i <= n; i++) {
            if (cnt[i] == 0) {
                queue.add(i);
                st[i] = true;
            }
        }

        int[]ret = new int[n+1];
        int pos = 0;

        while (!queue.isEmpty()) {
            int x = queue.poll();
//            System.out.print(x + " ");
            ret[pos++] = x;
            for (int j = 1; j < lists.get(x).size(); j++) {
                int t = lists.get(x).get(j);
                cnt[t]--;
                if (cnt[t] == 0) {
                    queue.add(t);
                }
            }
        }
        if(pos == n) {
            for(int i = 0; i<n; i++) {
                pw.print(ret[i]);
                if(i<n-1) {
                    pw.print(" ");
                }
            }
        }else {
            pw.println(-1);
        }
        pw.flush();
    }
}

//
//import java.io.*;
//import java.util.*;
//
//// 注意类名必须为 Main, 不要有任何 package xxx 信息
//public class Main {
//    public static void main(String[] args) throws IOException {
//        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        int m = scanner.nextInt();
//        List<List<Integer>> lists = new ArrayList<>();
//        lists.add(new ArrayList<>());
//        for (int i = 1; i <= n; i++) {
//            lists.add(new ArrayList<>());
//            lists.get(i).add(-1);
//        }
//        int[] cnt = new int[n + 1]; //每个节点的入度
//        for (int i = 1; i <= m; i++) {
//            int x = scanner.nextInt();
//            int y = scanner.nextInt();
//            lists.get(x).add(y);
//            cnt[y]++;
//        }
//
//        boolean[] st = new boolean[n + 1];
//        Queue<Integer> queue = new LinkedList<>();
//        for (int i = 1; i <= n; i++) {
//            if (cnt[i] == 0) {
//                queue.add(i);
//                st[i] = true;
//            }
//        }
//
//        int[]ret = new int[n+1];
//        int pos = 0;
//
//        while (!queue.isEmpty()) {
//            int x = queue.poll();
////            System.out.print(x + " ");
//            ret[pos++] = x;
//            for (int j = 1; j < lists.get(x).size(); j++) {
//                int t = lists.get(x).get(j);
//                cnt[t]--;
//                if (cnt[t] == 0) {
//                    queue.add(t);
//                }
//            }
//        }
//        if(pos == n) {
//            for(int i = 0; i<n; i++) {
//                System.out.print(ret[i]);
//                if(i<n-1) {
//                    System.out.print(" ");
//                }
//            }
//        }else {
//            System.out.println(-1);
//        }
//    }
//}